2026年3月CCF—GESP(Python四级)编程能力等级认证试卷
四级
2026
2026-07-31 19:10:25
134次
一、单选题
执行以下Python 代码后,输出的结果是?()
def process_data(data): result = [] for item in data: if item > 0: result.append(item * 2) elif item < 0: result.append(abs(item)) else: result.append(0) return result output = process_data([-2, 0, 3, -1]) print(sum(output))
| A. 12 |
B. 6 |
| C. 88 |
D. 9 |
【知识点】 CCF—GESP Python四级
以下代码使用插入排序对列表进行升序排序。空白处应填入?()
def insertion_sort_optimized(arr): n = len(arr) for i in range(1, n): key = arr[i] # 当前待插入元素 j = i - 1 while j >= 0 and arr[j] > key: arr[j + 1] = arr[j] # 元素后移 j -= 1 arr[j + 1] = key # 插入元素到正确位置
| A. arr [j + 1] = key |
B. arr [j - 1] = key |
| C. key = arr [j] |
D. arr [i] = key |
【知识点】 CCF—GESP Python四级
阅读以下Python 代码,下列说法正确的是?()
n = int(input()) def is_palindrome(s): return s == s[::-1] max_palindrome = 0 for i in range(10 ** (n - 1), 10 ** n): for j in range(i, 10 ** n): product = i * j if is_palindrome(str(product)) and product > max_palindrome: max_palindrome = product print(max_palindrome)
| A. 找出所有n 位数 |
B. 找出由两个n 位数相乘得到的最大回文数 |
| C. 找出所有回文数 |
D. 计算两个n 位数乘积的最大值 |
【知识点】 CCF—GESP Python四级
以下代码实现了根据分数返回等级(A: 90-100, B: 80-89, C: 70-79, D: 60-69, F: 0-59)的功能,请选择正确的选项填入①②处。()
grade_map = {90: "A", 80: "B", 70: "C", 60: "D", 0: "F"}
def get_grade(score):
if score < 0 or score > 100:
return "无效分数"
for key in sorted(grade_map.keys(), reverse=True):
if score >= key:
return _____①_____
score = int(input())
grade = get_grade(score)
print(f"分数 {score} 的等级是 {_____②_____}") | A. ①grade_map[score] ②grade |
B. ①key ②get_grade(score) |
| C. ①grade_map[key] ②score |
D. ①grade_map[key] ②grade |
【知识点】 CCF—GESP Python四级
文件text .txt 的内容如下:
Python is a programming language. Python is easy to learn.
以下程序统计单词 "Python" 在文件中出现的次数。Python 后面是空格或行尾,且不跟标点。请补全代码。( )
count = 0
with open("text.txt", "r") as f:
content = f.________ # 补全代码
words = content.split()
for word in words:
if word == "Python":
count += 1
print("Python出现次数:", count) | A. readlines() |
B. read() |
| C. readline() |
D. readlines |
【知识点】 CCF—GESP Python四级
二、判断题
三、编程题
礼盒排序
时间限制:1.0 s
内存限制:512.0 MB
题目描述
商店推出了许多礼盒,每个礼盒中包含k件商品,每件商品都有一个价格。
现在需要对这些礼盒进行排序,排序规则如下:
1. 先按礼盒总价格从小到大排序;
2. 如果总价格相同,按礼盒中最贵商品的价格从小到大排序;
3. 如果仍然相同,按礼盒中最便宜商品的价格从小到大排序;
4. 如果仍然相同,按礼盒编号从小到大排序。
请输出排序后的礼盒编号。
输入格式
第一行包含两个整数n和k,分别表示礼盒数量和每个礼盒中商品的数量。
接下来n行,每行包含k个整数,第i行表示第i个礼盒中各商品的价格。
输出格式
输出一行,包含排序后的礼盒编号(编号从1开始),用空格分隔。
输入样例
4 3 3 5 2 4 1 5 2 2 4 3 4 3
输出样例
3 4 2 1
样例解释
4 个礼盒分别为:

排序过程:
1. 按总价排序,3号礼盒总价最小;
2. 其余总价均为 10,再按最大值排序,4号最大值更小;
3. 1号和2号最大值相同,再按最小值排序,2号更小。
最终顺序为:3 4 2 1
数据范围
保证1≤n≤103,1≤k≤10,商品价格≤104。
【知识点】 CCF—GESP Python四级
山之谷
时间限制:1.0 s
内存限制:512.0 MB
题目描述
现有一片山地,可以视为一个N行M列的网格图,第i行j列的海拔为hi,j。
如果一个单元格的海拔不高于其所有相邻单元格(相邻包括上、下、左、右、左上、右上、左下、右下,最多8个方向)的海拔,则称该单元格为山谷。
请你数一数该片山地中有多少山谷。
输入格式
第一行包含2个整数N,M,表示山地的大小。
之后N行,每行包含M个整数hi,1,hi,2,...,hi,M,表示海拔。
输出格式
输出 1 行,包含 1 个整数C,表示山谷的数量。
输入样例
3 5 7 6 6 7 9 6 5 6 7 6 6 5 7 8 9
输出样例
3
样例解释
样例 1 如图所示,绿色单元格代表山谷:

数据范围
保证1≤N,M≤100,1≤hi,j≤105。
【知识点】 CCF—GESP Python四级
